package com.hhck.service.impl;

import com.hhck.entity.InStore;
import com.hhck.entity.Page;
import com.hhck.entity.Result;
import com.hhck.mapper.InStoreMapper;
import com.hhck.mapper.ProductMapper;
import com.hhck.service.InStoreService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
public class InStoreServiceImpl implements InStoreService {

    @Autowired
    private InStoreMapper inStoreMapper;

    @Autowired
    private ProductMapper productMapper;

    /**
     * 分页查询入库单列表（条件查询）
     */
    @Override
    public Page queryInStoreByPage(Page page, InStore inStore) {

        // 分页查询入库单列表（条件查询）
        List<InStore> inStoreList = inStoreMapper.selectInStoreByPage(page, inStore);

        // 查询入库单总行数（条件查询）
        int count = inStoreMapper.selectInStoreCount(inStore);
        // 设置总行数
        page.setTotalNum(count);
        // 设置总页数
        page.setPageCount(page.getPageCount());

        // 封装入库单信息
        page.setResultList(inStoreList);

        return page;
    }

    /**
     * 确定入库
     */
    // 开启事务
    @Transactional(rollbackFor = Exception.class)
    @Override
    public Integer modifyInStoreIsInByInsId(InStore inStore) {

        // 确定入库
        int num = inStoreMapper.updateInStoreIsInByInsId(inStore);

        // 入库后更改商品库存量
        num += productMapper.updateProductInInventByProductId(inStore);

        return num;
    }

}

